package com.blkj.iam.shared.sso.bo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 部门表
 * <p>
 *
 * @Author Steve
 * @Since 2019-01-22
 */
@Data
@TableName("sys_depart")
public class SysDepart implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * 父机构ID
     */
    private String parentId;
    /**
     * 机构/部门名称
     */
    private String departName;
    /**
     * 英文名
     */
    private String departNameEn;
    /**
     * 缩写
     */
    private String departNameAbbr;
    /**
     * 排序
     */
    private Integer departOrder;
    /**
     * 描述
     */
    private String description;
    /**
     * 机构类别 1=公司，2=组织机构，3=岗位
     */
    private String orgCategory;
    /**
     * 机构类型
     */
    private String orgType;
    /**
     * 机构编码
     */
    private String orgCode;
    /**
     * 账号名
     */
    private String mobile;
    /**
     * 传真
     */
    private String fax;
    /**
     * 地址
     */
    private String address;
    /**
     * 电话
     */
    private String phone;
    /**
     * 备注
     */
    private String memo;
    /**
     * 状态（1启用，0不启用）
     */
    private String status;
    /**
     * 删除状态（0，正常，1已删除）
     */
    @TableLogic
    private String delFlag;
    /**
     * 对接企业微信的ID
     */
    private String qywxIdentifier;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 租户ID
     */
    private Integer tenantId;

    /**
     * 是否有叶子节点: 1是0否
     */
    private Integer izLeaf;

    // update-begin---author:wangshuai ---date:20200308  for：[JTC-119]在部门管理菜单下设置部门负责人，新增字段负责人ids和旧的负责人ids
    /**
     * 部门负责人的ids
     */
    @TableField(exist = false)
    private String directorUserIds;
    /**
     * 旧的部门负责人的ids(用于比较删除和新增)
     */
    @TableField(exist = false)
    private String oldDirectorUserIds;
    // update-end---author:wangshuai ---date:20200308  for：[JTC-119]新增字段负责人ids和旧的负责人ids

    /** 2023-01-23 16：58 王宁 开始 */
    /**
     * 组织机构类型：0 平台 1 监管区 2 过货商 3 供箱单位 4 担保商 5 供应商 6 贸易商 7 蒙方承运单位 8 中方承运单位 9 收货方 10 下游客户 14 公司
     */
    private String departType;

    /**
     * 组织机构代码
     */
    private String idCard;

    /**
     * 编号
     */
    private String mineCode;

    /**
     * 联系人
     */
    private String linkMan;

    /**
     * 监管区类型（只是监管区用到）0：本场站 1：其他场站
     */
    private Integer jgType;

    /**
     * 附件
     */
    private String attachment;

    /**
     * 担保商ID
     */
    private String dbsId;

    /**
     * 担保商名称
     */
    private String dbsName;

    /**
     * 余额
     */
    private BigDecimal balance;

    /**
     * 信用额度
     */
    private double creditLimit;
    /** 2023-01-23 16：58 王宁 结束 */

    /**
     * 用户自定义orgCode
     */
    private String customOrgCode;
    /**
     *
     */
    @TableField(exist = false)
    private String customType;
    /**
     * 蒙古名称
     */
    private String mgName;
    /**
     * 管理员ID
     */
    @TableField(exist = false)
    private String adminId;
    /**
     * 营业执照
     */
    private String licenseFile;
    /**
     * 贸易合同
     */
    private String tradeContract;
    /**
     * 仓储合同
     */
    private String storageContract;
    /**
     * 过贸一体(0:单一过货商 1：过贸一体)
     */
    private String gmType;
    /**
     * 公司类型（0：自由公司  1：其他）
     */
    private String firmType;

    /**
     * 国家(0:外蒙  1：俄罗斯  2：中国 3：跨国)
     */
    private Integer country;

    /**
     * 监管区ID数组
     */
    private String jgqIds;
}
